home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / os2 / te2_130t.arj / TE2INST.001 / Whats.New < prev    next >
Text File  |  1994-03-28  |  55KB  |  1,166 lines

  1.                                          Notes for TE/2 Version 1.30
  2.                                                       March 16, 1994
  3.  
  4.                                                      Oberon Software
  5.                                                   1405 East Main St.
  6.                                               Mankato, MN 56001-5070
  7.  
  8.                                                  Voice: 507/388-7001
  9.                                                  BBS:   507/388-1154
  10.  
  11.   -------------------------------------------------------------
  12.  
  13. Copyright 1991-94, Oberon Software, Mankato, MN - All Rights Reserved
  14.  
  15.   -------------------------------------------------------------
  16.  
  17. The top portion of this document outlines the changes applied between
  18. TE/2 Version 1.24 and 1.30.  The second portion of this document
  19. outlines the changes made between TE/2 Version 1.23 and 1.24.  The third
  20. portion of this document outlines changes made between TE/2 Version
  21. 1.20 and 1.23.  The fourth portion of this document outlines the changes
  22. made between TE/2 Version 1.10C and 1.20.
  23.  
  24.   -------------------------------------------------------------
  25.  
  26. General Notes
  27.  
  28.      Please note our NEW ADDRESS given directly above!  All phone numbers
  29.      remain the same.
  30.  
  31.      Also note that Steven Tower's Internet and GEnie ID's are no longer
  32.      active;  you may contact Steven via the Oberon BBS however.
  33.  
  34.  
  35. Features
  36.  
  37.      Multi-Media, sound file support!  You can specify WAV or VOC files
  38.      to play for various events within TE/2, attach a sound file to
  39.      each dialing directory entry, and play and record WAV files
  40.      directly from your TE/2 or REXX scripts.
  41.  
  42.      Fully remappable, multiple keyboards!  Use the supplied TE2KBD
  43.      program to create alternate keyboard mapping files.  You can
  44.      attach any script command to any keystroke, and load and save
  45.      keyboards from your scripts.
  46.  
  47.      You can now pass parameters to your TE/2 syntax or REXX syntax
  48.      TE/2 scripts!
  49.  
  50.      Greatly enhanced External programs interface including separate
  51.      external file transfer protocol sections.  You can now easily use
  52.      DOS based external file transfer engines with TE/2.  See notes
  53.      later in this document regarding use of DOS based external protocol
  54.      engines.
  55.  
  56.  
  57. New INI File Settings
  58.  
  59.      Variable       Setting and Notes
  60.      -------------  -------------------------------------------------
  61.      ChimeWAV       Filename, default NULL.  Only applicable if you
  62.                     have MMOS2 installed on your system.  This WAV file
  63.                     will be played instead of the regular TE/2 "Chime".
  64.  
  65.      Chime5         TRUE/FALSE, default FALSE.  Only applicable if you
  66.                     have MMOS2 installed on your system.  Setting this to
  67.                     TRUE will enable playing of the Chime5WAV after every
  68.                     five minutes of on-line time.
  69.  
  70.      Chime15        TRUE/FALSE, default FALSE.  Only applicable if you
  71.                     have MMOS2 installed on your system.  Setting this to
  72.                     TRUE will enable playing of the Chime15WAV after every
  73.                     fifteen minutes of on-line time.
  74.  
  75.      Chime60        TRUE/FALSE, default FALSE.  Only applicable if you
  76.                     have MMOS2 installed on your system.  Setting this to
  77.                     TRUE will enable playing of the Chime60WAV after every
  78.                     sixty minutes of on-line time.
  79.  
  80.      Chime5WAV      Filename, default NULL.  Only applicable if you
  81.                     have MMOS2 installed on your system.  If enabled, this
  82.                     file is played after every five minutes of on-line time.
  83.  
  84.      Chime15WAV     Filename, default NULL.  Only applicable if you
  85.                     have MMOS2 installed on your system.    If enabled, this
  86.                     file is played after every fifteen minutes of on-line
  87.                     time.
  88.  
  89.      Chime60WAV     Filename, default NULL.  Only applicable if you
  90.                     have MMOS2 installed on your system.    If enabled, this
  91.                     file is played after every sixty minutes of on-line time.
  92.  
  93.      DialingWAV     Filename, default NULL.  Only applicable if you have MMOS2
  94.                     installed on your system.  This file will be played whenever
  95.                     TE/2 dials a number if there is no personalized sound file
  96.                     specified in the dialing directory entry for that number.
  97.  
  98.      EndingWAV      Filename, default NULL.  Only applicable if you have MMOS2
  99.                     installed on your system.  This file will be played when
  100.                     TE/2 exits.
  101.  
  102.      StartupWAV     Filename, default NULL.  Only applicable if you have MMOS2
  103.                     installed on your system.  This file will be played when you
  104.                     start TE/2.
  105.  
  106.      XferStartWAV   Filename, default NULL.  Only applicable if you have MMOS2
  107.                     installed on your system.  This file will be played when TE/2
  108.                     begins a file transfer.
  109.  
  110.      XferSuccessWAV Filename, default NULL.  Only applicable if you have MMOS2
  111.                     installed on your system.  This file will be played after
  112.                     successful completion of a file transfer.
  113.  
  114.      XferFailWAV    Filename, default NULL.  Only applicable if you have MMOS2
  115.                     installed on your system.  This file will be played if a
  116.                     file transfer failed for any reason.
  117.  
  118.      Telnet         TRUE/FALSE, default FALSE.  If set to TRUE, TE/2 will
  119.                     initiate Telnet handshaking at startup and will respond
  120.                     to Telnet protocol messages throughout operation.
  121.  
  122.      StatBarAttr    Color Attribute, controls the color of the TE/2 Status Bar.
  123.                     Please note that this attribute is not yet included in the
  124.                     colors you can set via the Te2Color program.  It is set to
  125.                     yellow on blue by the install program and if you wish to
  126.                     modify it you will need to use a text editor on your TE2.INI
  127.                     file to change it "by hand".
  128.  
  129.      Device         This is not new but it should be noted here that you can
  130.                     now specify "Nul" as a device name.
  131.  
  132.      MenuActive     This is not new but its functionality has changed.  You may
  133.                     now set it to one of three settings which will determine the
  134.                     initial display of the TE/2 Menu or Status Bar:
  135.                       * 0 -> No menu or status bar
  136.                       * 1 -> Menu
  137.                       * 2 -> Status Bar
  138.  
  139.      TE2Menu        Filename, default NULL.  If set to a valid file name, the
  140.                     contents of the file will replace the default TE/2 menu
  141.                     (Alt-Z).  The menu lines begin at the beginning of the
  142.                     file and end when the end of file is encountered or when
  143.                     the string "$$END$$" appears at the beginning of a line.
  144.                     The menu is drawn in "MenuNormAttr" color unless changed
  145.                     with one of the two available color-indicator characters:
  146.                         ~ will set "MenuHiAttr" if "MenuNormAttr" is in effect
  147.                           else it will reset "MenuNormAttr"
  148.                         $ will set "LogoAttr" unless "LogoAttr" is already in
  149.                           effect in which case it will reset "MenuNormAttr".
  150.                     NOTE: Setting "TE2Menu" from a script will have absolutely
  151.                           no effect; it is only read and parsed at startup.
  152.  
  153.      InitWindowPos  Special, no default.  You may set this to one of three
  154.                     values:
  155.                       * Maximize
  156.                       * Minimize
  157.                       * @<filename>
  158.                     This controls the initial placement of TE/2's window, the
  159.                     settings are not valid if you run TE/2 in a full screen
  160.                     session.  The "Maximize" and "Minimize" settings should
  161.                     be self-explanitory; "@<filename>" indicates the name of
  162.                     a file which will be used to store TE/2's window position
  163.                     values between executions so that they may be restored on
  164.                     the next exection.  If this variable does not appear in
  165.                     TE2.INI, TE/2's initial window position will be determined
  166.                     by OS/2.
  167.  
  168.      CommShared     TRUE/FALSE, default FALSE.  Use this setting WITH GREAT
  169.                     CARE!  This will cause TE/2 to open it's Device in "Shared
  170.                     Mode" which allows other applications to open and use the
  171.                     device simultaneously with TE/2.  This could cause great
  172.                     problems if not used appropriately.
  173.  
  174.      TE2Pipe        Pipename, default NULL.  If used, the argument should be
  175.                     a valid pipe name, i.e., "\pipe\te2pipe" or some such.
  176.                     External processes may use this pipe to send commands into
  177.                     TE/2; the pipe will accept anything that the Interpret()
  178.                     function will accept.  The external process must send a
  179.                     2-byte word on the pipe stating the length of the
  180.                     following string before the string.  TE/2 will return the
  181.                     length of string it read.  See the supplied TE2PIPE
  182.                     program for an example of using this facility from an
  183.                     external process.
  184.  
  185.      ErrorPopUp     TRUE/FALSE, default TRUE.  If TRUE, the normal error
  186.                     popup dialog will appear on script syntax errors, file
  187.                     open oerrors, etc.  If FALSE, only a message will be
  188.                     printed to stdout.  This will allow a remote process
  189.                     to pipe in commands that could possibly be invalid and
  190.                     not worry about getting TE/2 into a state where it's
  191.                     waiting for use input.  You would also want to use this
  192.                     in a host mode script to allow the remote user to enter
  193.                     script commands via Interpret().
  194.  
  195.      KeyMapFile     Filename, defailt NULL.  If this variable is set it should
  196.                     indicate the name of a TE/2 Keyboard Mapping file created
  197.                     via the TE2KBD program.  This file will be read as the
  198.                     default keyboard mapping file at TE/2 startup.
  199.  
  200.      DialCheckDCD   TRUE/FALSE, default TRUE.  If set to false, TE/2 will NOT
  201.                     check for a carrier signal before dialing a number.
  202.  
  203.      ANSIBackspace  TRUE/FALSE, default FALSE.  If set to TRUE, the backspace
  204.                     character in either of the ANSI emulations will become
  205.                     non-destructive.
  206.  
  207.      MaxReDials     Numeric, default 0=infinity.  If set to a non-zero value
  208.                     this becomes the absolute maximum number of dialing
  209.                     attempts that TE/2 will make on any given number before
  210.                     aborting.
  211.  
  212.      XEXUploadFile  Filename, default TE2Upl.XEX.  Format of the file is
  213.                     identical to the TE2.XEX file, this files contents will
  214.                     determine the External Upload Protocol menu.
  215.  
  216.      XEXDnloadFile  Filename, default TE2Dnl.XEX.  Format of the file is
  217.                     identical to the TE2.XEX file, this files contents will
  218.                     determine the External Download Protocol menu.
  219.  
  220.  
  221. New Script Functions
  222.  
  223.   integer PlayFile(string fname, integer wait)
  224.    Play a file via MMOS2.
  225.     fname - name of a file 'playable' via MMOS2
  226.     wait  - if 0 willplay file asynchronously, otherwise synchronous
  227.     returns: 0 if no error (asynch mode always returns 0) or an error value
  228.  
  229.   integer RecordFile(string fname, string wintitle)
  230.    Record a file via MMOS2.
  231.     fname    - name of file to record into bia MMOS2
  232.     wintitle - titlebar text for recorder control
  233.     returns: 0 if no error or an error value
  234.     notes: function not available in full screen mode
  235.  
  236.   integer MainMenu(integer option)
  237.    Set the TE/2 menu state.
  238.     option should be one of:
  239.      -1 -> cycle
  240.       0 -> No menu or status bar
  241.       1 -> Menu
  242.       2 -> Status bar
  243.     returns: TRUE if menu changed state, FALSE if not
  244.  
  245.   integer ReStart(integer option)
  246.    Close and reopen the current "Device"
  247.     option - if TRUE, use will be prompted for action after the device
  248.              has been closed and before it is reopened.  User may elect
  249.              to exit TE/2 at this point.  If FALSE, ReStart() procedes
  250.              directly to the reopen phase.
  251.     returns: TRUE if successful, FALSE if not (see notes)
  252.     Notes: function not available if TE/2 was started with a "hot" handle.
  253.            If Restart() fails, usually TE/2 will be exited.
  254.            If Telnet handshaking is enabled, it will be reinitialized. 
  255.  
  256.   integer WindowMinMax(integer option)
  257.    Set TE/2's window state.
  258.     option should be one of:
  259.       0 -> Minimize
  260.       1 -> Maximize
  261.       2 -> Restore
  262.     returns: 0 if no error or an error value
  263.     notes: function not available in full screen mode
  264.  
  265.   integer Interpret(string cmd)
  266.    Invoke the script parser on its argument and execute it
  267.    as a script command.  The function always returns TRUE.
  268.    Anything that can be typed at the "Command:" prompt can be
  269.    executed via Interpret().
  270.    Examples:
  271.      Interpret("hangup(false)")
  272.      Interpret("downloadpath = d:\foo")
  273.  
  274.   integer ReadKeyFile(string filename)
  275.    reads a keyboard definition file into the current keyboard setup
  276.    overwriting the current setup.
  277.  
  278.   integer PushKeyboard(void)
  279.    saves the currently active keyboard setup and creates a new
  280.    keyboard with all TE/2 default key mappings.
  281.  
  282.   integer PopKeyboard(void)
  283.    restores a pushed keyboard and discards the current keyboard.
  284.  
  285.   string QueryKeyFile(void)
  286.    Returns the name of the currently loaded key mapping file (loaded
  287.    via "KeyMapFile" in TE2.INI or the ReadKeyFile() function) or the
  288.    empty string if the default keyboard is in effect.
  289.  
  290.   integer SetANSIBS(integer flag)
  291.    Sets the ANSI Backspace flag and re-inits the emulation to enable
  292.    this mode.  Returns the previous value of the flag.
  293.  
  294.   integer SetParms2(string newdev, ... etc)
  295.    exactly like SetParms() in all respects except that it takes a
  296.    string argument for the device name instead of an integer 'port number'
  297.    so it can be used to switch devices with the device name isn't COMx.
  298.    See the docs on SetParms() for info in the rest of the parameter list.
  299.  
  300.   integer PopupMenu(string title, string items, integer row, integer col,
  301.                       integer at1, integer at2, integer sel)
  302.  
  303.    title -- Title for the menu, may be "" for no title
  304.    items -- Delimited list of items for menu, first char defines the
  305.             delimiter.  See MuxWait(), it's list of items is constructed
  306.             the same way.
  307.    row   -- For upper left corner of the menu
  308.    col   -- For upper left corner of the menu
  309.    at1   -- Color Attribute for menu
  310.    at2   -- Color Attribute for menu highlights
  311.    sel   -- Initial selection.  If <0 or >number of items, item 1 is
  312.             selected initially
  313.  
  314.    The menu is sized based on number of items and the longest item
  315.    (or title).  The first character of each item is treated as a
  316.    mnemonic.  Returns the number of the item selected, 0 if the user
  317.    pressed ESCape.
  318.  
  319.    Example:
  320.      PopupMenu("My Menu", "/One/Two/Three/", 10, 30, 0x17, 0x1f, 2)
  321.  
  322.  
  323. Other Script Notes:
  324.  
  325.   Parameters for script files!  Both the RUN() statement and the
  326.   "CALL" pseudo statement have been enhanced to allow for parameters
  327.   which will be passed to the script file.  A TE/2 script language
  328.   script may retrieve these by querying the read-only string variable:
  329.   "ScriptArgs".  The entire parameter line will be in this variable and
  330.   it is the responsibility of the script to parse it as it sees fit.
  331.   A REXX language TE/2 script retrieves the parameters via the standard
  332.   PARSE ARG methods.
  333.  
  334.   Note that the RUN() statement now accepts either one or two string
  335.   parameters.  RUN("MyScript", "Arg1 Arg2") will execute "MyScript" and
  336.   place "Arg1 Arg2" in ScriptArgs.  The statement RUN("MyScript") is
  337.   also legal and it is equivalent to RUN("MyScript", "").
  338.  
  339.   When you use CALL from the TE/2 Alt-/ Command Prompt, any non-space
  340.   characters after the script name will be taken as script parameters.
  341.   Leading spaces are stripped from the parameter string but not trailing
  342.   ones.  Note that because the space is used as a delimiter here you
  343.   cannot CALL a script with a space in its file name.
  344.  
  345.   You can specify a parameter string to a script started via TE/2's
  346.   command line "-m" switch by using "-a".  Example:
  347.  
  348.           TE2 -mMyScript "-aArg1 Arg2"
  349.  
  350.   Similarly, you can pass parameters to TE2START.SCR using "-u".
  351.  
  352.  
  353. Notes regarding DOS based External Protocols:
  354.  
  355.   1. You MUST use SIO.SYS and VSIO.SYS
  356.      1a. You MUST use an minimally documented feature of SIO.  On the
  357.          SIO "device=" line, you have to specify the port and use
  358.          a "-" in the fourth parameter.  I.e.:
  359.  
  360.            device=d:\usrdev\sio.sys (2,2f8,3,-)
  361.            device=d:\usrdev\vsio.sys (2,2f8,3,-)
  362.  
  363.   2. You MUST run the DOS program from a .BAT batch file via CMD.EXE
  364.      as a foreground, child task in the current session.  An example
  365.      of an entry for HSLINK from my TE2Upl.XEX file is:
  366.  
  367.          0x0011,0
  368.          HSLink
  369.          c:\os2\cmd.exe*d:\comm\dosxtern\hslink
  370.          /c hsl.bat %n %?[Send file(s):]
  371.  
  372.      and HSL.BAT reads:
  373.  
  374.          @echo off
  375.          hslink -p%1 -uE:\Inbound\Data %2 %3 %4 %5 %6 %7 %8 %9
  376.          exit
  377.  
  378.  
  379.  
  380.   -------------------------------------------------------------
  381.  
  382.                                          Notes for TE/2 Version 1.24
  383.                                                        July 19, 1993
  384.  
  385.                                                      Oberon Software
  386.                                                   518 Blue Earth St.
  387.                                               Mankato, MN 56001-2142
  388.  
  389.                                                  Voice: 507/388-7001
  390.                                                  BBS:   507/388-1154
  391.  
  392.   -------------------------------------------------------------
  393.  
  394. Copyright 1991-93, Oberon Software, Mankato, MN - All Rights Reserved
  395.  
  396.   -------------------------------------------------------------
  397.  
  398.  =======================================================================
  399.  Changes which effect both the Registered and Shareware Versions of TE/2
  400.  =======================================================================
  401.  
  402. General Note
  403.  
  404.      Oberon Software's GEnie ID has changed from "B.FLOWERS" to "BRADY".
  405.      You can address GE Mail to either this ID or to our new Customer
  406.      Support Representative, Steven Tower, at GEnie ID "TOWER".  You
  407.      can send GE Mail to Kimberly Bobrow about Oberon PMQWK at GEnie
  408.      ID "KIMBERLY".
  409.  
  410.      The Oberon User Support TOPic on GEnie has moved from the IBMPC
  411.      RoundTable to the new OS/2 RoundTable.  To access the OS/2 RoundTable
  412.      on GEnie, type "OS/2" at most any GEnie prompt.  The Oberon User
  413.      Support TOPic is in CATegory 22, TOPic 2.
  414.  
  415.      The new OS/2 RoundTable is really taking off and Oberon Software is
  416.      excited to be working closely with GEnie to help ensure its success.
  417.      If you are already a GEnie subscriber, please visit the OS/2 RT on
  418.      Page 1400.  If not, you can contact a GEnie representative for
  419.      subscription information at 1-800-638-9636.
  420.  
  421.      You can also use the new GEnie-Internet Gateway to contact Oberon
  422.      Software now.  Just send Internet mail to brady@genie.geis.com.
  423.      Likewise, contact Steven Tower at tower@genie.geis.com and Kimberly
  424.      Bobrow at kimberly@genie.geis.com.
  425.  
  426.  
  427. OS/2 2.1 Notes
  428.  
  429.      The release of OS/2 2.1 triggered two very visible problems.  For
  430.      one of these problems, a workaround has been effected.  For the
  431.      other, no programmatic workaround has yet been devised however we
  432.      will offer several possible workarounds for the user to try.
  433.  
  434.      1. Screen is corrupted at TE/2 start-up.
  435.         This problem has been addressed and corrected within TE/2.
  436.  
  437.      2. Keyboard and/or "Screen handler" problems.
  438.         The problem appears to exist in the OS/2 2.x keyboard handler.
  439.         The symptom is that you may receive one or more of the following
  440.         error messages from TE/2 at start-up:
  441.  
  442.               "Cannot initialize screen handler."
  443.               "Cannot set logical keyboard state, error 445"
  444.               "Cannot obtain kbd focus for logical keyboard, error 449"
  445.  
  446.         If this happens it means that OS/2 has been unable to provide
  447.         TE/2 with access to a logical, secondary keyboard which TE/2
  448.         needs to use for its menu and dialog box routines.  TE/2 cannot
  449.         continue if this happens as there would be severe consequences
  450.         during later processing.  The following workarounds have been
  451.         suggested by users and testers and appear to work with varying
  452.         degrees of reliability:
  453.  
  454.             A. Run TE/2 in a window instead of full screen.  This is the
  455.                only suggestion guaranteed to work 100% of the time.  If
  456.                you have slow video, however, you may be displeased with
  457.                the speed of screen updates.
  458.             B. Some users report that the problem only happens when a
  459.                WinOS2 application is running in the background.  Check to
  460.                see what else is running on your machine and see if closing
  461.                any one of them will allow TE/2 to run.
  462.             C. Most users state that if they delete their TE/2 program
  463.                object from the desktop and recreate it from a template
  464.                that this will correct the problem.  Others have re-installed
  465.                OS/2 and have seen the problem corrected.
  466.  
  467.  
  468. New INI File Setting
  469.  
  470.      Variable       Setting and Notes
  471.      -------------  -------------------------------------------------
  472.      SaveScreen     TRUE/FALSE, default: TRUE.  If FALSE the contents of
  473.                     the screen before TE/2 is run will NOT be saved and
  474.                     restored afterwards.  Saves about 2k of memory and a
  475.                     few milliseconds at startup.  If you're running from
  476.                     the desktop there's no need to save the screen anyway.
  477.  
  478.  
  479. Problem Resolution and Other Enhancements
  480.  
  481.      Under OS/2 2.1 when running TE/2 in a full screen session on certain
  482.      hardware configurations, screen corruption at program startup would
  483.      occur.  This has been corrected.
  484.  
  485.      Corrected problem regarding "bleed through" of keystrokes from Dialing
  486.      Directory and Scrollback Buffer into main terminal screen when TE/2
  487.      is run in a window.
  488.  
  489.      Corrected problems encountered when changing COM devices via the
  490.      Alt-P menu in TE/2.
  491.  
  492.      Corrected problem regarding use of root directory paths for UploadPath,
  493.      DownloadPath, and ScriptPath.
  494.  
  495.      Function keys behave normally in Chat Mode (i.e., PF Key macros now
  496.      work).
  497.  
  498.      Backspace in Chat Mode will now wrap backwards across line boundarys.
  499.  
  500.      Added Alt-Y (Yank) in Chat Mode to retrieve the last transmitted line
  501.      for re-edit and re-transmission.
  502.  
  503.      Problems regarding various hard and soft traps and machine lockups
  504.      which were occuring during re-upload of marked text from the scroll
  505.      back buffer have apparently been corrected.  If you have or continue
  506.      to have problems with this function, please notify Oberon Software
  507.      immediately.
  508.  
  509.      Corrected time estimation process on large uploads.
  510.  
  511.  
  512.        ========================================================
  513.        Changes which effect only the Registered Version of TE/2
  514.        ========================================================
  515.  
  516. New Script Function
  517.  
  518.      integer DrawBox(integer Row, integer Col, integer nRows, integer nCols, integer Attr, integer Style, integer Fill)
  519.  
  520.      Draws a box with the specified co-ordinates.  Style is 0 for no frame,
  521.      1 for single line frame, 2 for double line frame.  Fill is TRUE or FALSE.
  522.      Returns TRUE on success, FALSE if parameter error.
  523.  
  524.  
  525. Changes and corrections to Script Parser
  526.  
  527.      Problem with using "%%" in the format string for the message() function
  528.      resolved.
  529.  
  530.      Function SetMark(), the second parameter has rejecting the keyword
  531.      'toggle' which the documentation states should be usable here.
  532.      SetMark() now works correctly.
  533.  
  534.      ZModem was setting the script language system variables: LastDownload
  535.      and LastUpload incorrectly.  This is fixed.
  536.  
  537.      Extraneous TIMEOUT events generated by multiple Waitfor()'s, MuxWait()'s,
  538.      and Rgets()'s which were causing synchronization problems have been
  539.      accomodated for and this problem should be resolved.
  540.  
  541.      All script functions which take a dialing directory "tag" as an
  542.      argument will now accept "#n" instead of a tag to refer to the n-th
  543.      directory entry.
  544.  
  545.  
  546. REXX notes
  547.  
  548.      For some TE/2 fucntions which return either string or numeric
  549.      information, the REXX handler may get confused in certain situations.
  550.      For example, a string which begins with a numeric digit (i.e., "123ABC")
  551.      may get truncated to just the numeric portion ("123" in the example).
  552.      For large numbers, like the return values from OpenDialog() and fopn(),
  553.      REXX may alter the number and, for phone numbers with hyphens embedded,
  554.      it appears that REXX is treating these as numbers and possibly
  555.      attempting to do arithmetic on them!  The solution to this problem is
  556.      to force the return value from TE/2 to REXX to be a string that does
  557.      NOT begin with a numeric digit.  You can do this with sprintf() and
  558.      a subsequent use of REXX's substr() function.  Some examples follow:
  559.  
  560.        /* TE/2 to REXX string and numeric handling */
  561.  
  562.        /* 'DirNumber("")' Returns the phone number most recently dialed    */
  563.                        /* from the dialing directory, i.e. 1-800-555-1212. */
  564.                        /* REXX might think that this is an arithmetic      */
  565.                        /* statement!  So instead...                        */
  566.  
  567.        'sprintf("[%s", DirNumber(""))' /* Will return "[1-800-555-1212"    */
  568.        TheNumber = substr(rc, 2)       /* Makes it "1-800-555-1212" again  */
  569.  
  570.  
  571.        /* 'OpenDialog(...)' Returns a 16-bit memory pointer which REXX     */
  572.                        /* will probably not handle correctly as a return   */
  573.                        /* code.  Use the same workaround...                */
  574.  
  575.        'sprintf("[%s", OpenDialog(...))'
  576.        DlgHandle = substr(rc, 2)
  577.  
  578.  
  579.   -------------------------------------------------------------
  580.  
  581.                                          Notes for TE/2 Version 1.23
  582.                                                       April 15, 1993
  583.  
  584.                                                      Oberon Software
  585.                                                   518 Blue Earth St.
  586.                                               Mankato, MN 56001-2142
  587.  
  588.                                                  Voice: 507/388-7001
  589.                                                  BBS:   507/388-1154
  590.  
  591.   -------------------------------------------------------------
  592.  
  593. Copyright 1991-93, Oberon Software, Mankato, MN - All Rights Reserved
  594.  
  595.   -------------------------------------------------------------
  596.  
  597.  =======================================================================
  598.  Changes which effect both the Registered and Shareware Versions of TE/2
  599.  =======================================================================
  600.  
  601. New INI File Settings
  602.  
  603.      Variable       Setting and Notes
  604.      -------------  -------------------------------------------------
  605.      SetVTDefAttr   TRUE or FALSE, default is FALSE.  If set to TRUE,
  606.                     then the value of your TermAttr will be given to
  607.                     the VT100 handler to use as the default attribute.
  608.                     This replaces and overrides any setting for the
  609.                     "V" flag in the COMMPAK2FLAGS environment variable.
  610.  
  611.      NoHPFSSalvage  TRUE or FALSE, default is FALSE.  If set to TRUE,
  612.                     TE/2 will NOT use the HPFS-type file renaming
  613.                     scheme when a filename collision occurs on a
  614.                     download.
  615.  
  616.      NoExtSalvage   TRUE or FALSE, default is FALSE.  If set to TRUE
  617.                     TE/2 will use only one digit from 1 to 9 as the
  618.                     final character when attempting to resolve a file
  619.                     name collision on a FAT drive (or when NoHPFSSalvage
  620.                     is TRUE).
  621.  
  622.      SalvageBrkCh   any number from 1 to 255, default is 59.  Set this
  623.                     to the ASCII value of the character you wish to
  624.                     use as a separator character when resolving file
  625.                     name collisions on an HPFS drive.  By default this
  626.                     is a semi-colon and renamed files have the form:
  627.                     filename;nn (where nn is a number from 1 to 999).
  628.                     Suggested settings for this would be 46 (a period),
  629.                     32 (a space), 45 (a hyphen), or 95 (an underscore).
  630.                     Do NOT use any character which is not valid in an
  631.                     HPFS file name such as +, /, \, :, * or ?
  632.  
  633.      CursorTop      These are the initial scan line setting for the cursor.
  634.      CursorBottom   If they are left un-set, the cursor will not be changed.
  635.                     If one is set, they must both be set.  They can be
  636.                     queried from the script language but not set, use the
  637.                     new SetCursorSz() function instead.
  638.  
  639.      ExtendedFIFO   This is not a new setting but it was only partially
  640.                     enabled in TE/2 1.20.  The choices for this setting
  641.                     are now: TRUE, FALSE, or AUTO.  The "fourth choice"
  642.                     is to leave reference to it OUT of TE2.INI.  If it
  643.                     omitted from TE2.INI then the ambient state of the
  644.                     16550 is preserved and used.  If set to anything at all,
  645.                     the device is checked first for Extended Hardware
  646.                     Buffering support.  If supported, then if ExtendedFIFO
  647.                     is set to FALSE, buffering is disabled; if set to TRUE,
  648.                     buffering is enabled with a Receive Trigger level of 8
  649.                     and a Transmit Load Buffer Count of 16; if set to AUTO,
  650.                     then Auto-Buffering is enabled.
  651.  
  652.  
  653. Problem Resolution and Other Enhancements
  654.  
  655.      You may now specify the name of a Named Pipe, either local or remote,
  656.      in the "Device" field in TE2.INI.  If a pipe name is used then the
  657.      various COM-specific functions, like setting the baud rate, parity,
  658.      etc., are silently ignored.
  659.  
  660.      An add-on product is available for using TE/2 with TCP/IP sockets
  661.      and/or NETBIOS sessions.  Please contact Oberon Software if interested.
  662.  
  663.      The TE/2 intro screens are no longer garbaged if you start up in
  664.      132 column mode.
  665.  
  666.      Added command line parameter "-?" which will display a list of TE/2's
  667.      command line parameters, version information, and then exits.
  668.  
  669.  
  670.        ========================================================
  671.        Changes which effect only the Registered Version of TE/2
  672.        ========================================================
  673.  
  674. New Script Functions
  675.  
  676.      integer CRC16(string strg, integer len)
  677.      integer CRC32(string strg, integer len)
  678.  
  679.           These compute and return 16-bit and 32-bit CRCs for the
  680.           the first 'len' bytes of the supplied string.  If you set
  681.           len to -1, then the entire string length is used.
  682.  
  683.  
  684.      integer SetFNKeyFile(string filename)
  685.  
  686.           Allows a script to load a new function key definition file.
  687.           Returns 0 on success, 1 if the file was not found or could
  688.           not be opened for reading, and 2 if an error was encountered
  689.           reading the file.
  690.  
  691.           If the filename parameter is "" then the user will be queried
  692.           for a file name.  If the filename parameter contains path
  693.           information and/or a drive letter, then the name is accepted
  694.           as is, otherwise the standard search alogrithm for TE/2
  695.           support files is used (current directory, dirctory containing
  696.           TE2.EXE, and them each directory in the OS/2 PATH statement).
  697.  
  698.  
  699.      string ReadScr(integer row, integer col, integer length)
  700.  
  701.           Reads 'length' characters from the terminal screen at row 'row'
  702.           and column 'col'.  'row' and 'col' are 0 based (upper left corner
  703.           of screen is [0,0]).  'length' must be greater than zero and
  704.           less than 256.  If 'length' is zero or less, the empty string
  705.           is returned.  If 'length' is greater than 256, 256 is used.  No
  706.           error checking on 'row' and 'col' for validity is performed yet.
  707.  
  708.      integer StrnStr(string s1, string s2, integer n)
  709.  
  710.           Finds the n-th occurance of s2 in s1.  The call StrnStr(s1, s2, 1)
  711.           would be identical to StrStr(s1, s2).
  712.  
  713.      string UniqueFName(string template)
  714.  
  715.           Creates a temporary file name based on 'template' which is a
  716.           basename plus wildcard characters '?'.  For example:
  717.           C:\TEMP\FILE????.  The function does NOT open the file.
  718.           Returns the empty string if no new names could be generated.
  719.           Note: this function works exactly like the REXX/2 utility function
  720.           SysTempFileName except that you cannot specify an alternate
  721.           filler character.
  722.  
  723.      integer CancelAllWatch()
  724.  
  725.           Cancels all active watches.  Returns the number of watchfor's
  726.           which were canceled.
  727.  
  728.      integer SetCursorSz(integer top, integer bottom)
  729.  
  730.           Sets the size of the cursor.  'top' and 'bottom' are the
  731.           top and bottom scan lines for the cursor, respectively.
  732.           Returns TRUE on sucsess and FALSE on failure.  If successful,
  733.           system variables 'CursorTop' and 'CursorBottom' are updated.
  734.  
  735.  
  736.      integer SetMark(string tag, special)
  737.  
  738.           "tag" is a dialing directory tag, "special" is TRUE, FALSE, or
  739.           TOGGLE. This function sets the mark for the queue dialer on the
  740.           specified dialing directory entry.  Returns the OLD state of the
  741.           mark for that entry (TRUE or FALSE) or -1 if "tag" was not found.
  742.  
  743.  
  744.      integer TermWindow(integer Row, integer Col, integer nRows, integer nCols)
  745.  
  746.           Resets the terminal window (a subset of the physical screen) to the
  747.           size specified.  Returns TRUE on success, FALSE on error.  It's
  748.           recommended that you perform a cls() before and after this call.
  749.           Take great care with this one, it's a direct back door into the
  750.           terminal emulation code.
  751.  
  752.  
  753. New 'system', read-only script variables:
  754.  
  755.      integer Emulation
  756.           Reports the current emulation mode:
  757.             0 -> TTY
  758.             1 -> ANSI-BBS
  759.             2 -> ANSI-TE/2
  760.             3 -> VT100
  761.             4 -> IBM 3101
  762.  
  763.      integer Fullscreen
  764.           Set to TRUE (1) if TE/2 executing in a fullscreen
  765.           session or FALSE (0) if in a window
  766.  
  767.      integer ScreenRows
  768.      integer ScreenCols
  769.           These report the actual number of rows and colums on the
  770.           physical screen.
  771.  
  772.      string StartScr
  773.           Contains the name of the script specified on the TE/2 command
  774.           line via "-m<scriptfile>".  If none was specified, StartScr
  775.           contains "".
  776.  
  777.      integer RexxRC
  778.           Contains the return code from the last executed Rexx script
  779.           (0 if none have been executed).  See notes on Rexx scripting
  780.           below.
  781.  
  782.  
  783. Changes and corrections to Script Parser
  784.  
  785.      Change to the way REXX script return codes are handled.
  786.           Previously you had to end your REXX script with "exit 1" (or
  787.           other non-zero value) if you needed to return execution to a
  788.           TE/2 language script.  A return value of 0 would cause script
  789.           execution to end.  TE/2 will now continue executing the current
  790.           script regardless of the REXX return code.  A new, readonly
  791.           script variable "RexxRC" is set to the return value of the last
  792.           executed REXX script.
  793.  
  794.           Example:
  795.  
  796.             program
  797.               message("This is a TE/2 script^M^J")
  798.               run("rexxscr.cmd")
  799.               message("REXX return code is %d^M^J", RexxRC)
  800.               end
  801.  
  802.  
  803.      Default ScriptPath
  804.           If the ScriptPath setting in TE2.INI was left NULL, it was
  805.           erroneously defaulting the search path to the root directory
  806.           of the current disk.  TE/2 now defaults to the CURRENT
  807.           directory as the documentation suggests.
  808.  
  809.      Reentrancy and Watchfor()
  810.           Previously the script parser was not reentrant and because of
  811.           this Watchfor() statements could only be excuted between the
  812.           execution of individual lines of the script file.  This
  813.           severely limited the use of Watchfor() in conjunction with
  814.           actions that should occur immediately (i.e., transmitting a
  815.           response to a trigger string).  This limitation has now been
  816.           removed.  Some of the new example scripts use this feature
  817.           extensively, please refer to them for examples.
  818.  
  819.      Download()
  820.           Because of changes in the TE/2 and Commpak/2 handling of
  821.           input data streams in the 1.20 release, Download() stopped
  822.           working correctly with respect to ZModem.  This has been
  823.           corrected.
  824.  
  825.      Watchfor()
  826.          The number of available watchfor handles has been increased from
  827.          10 to 32
  828.  
  829.      Watchfor(), OpenDialog(), and SaveScr()
  830.          These functions may now be called 'directly' from REXX scripts.
  831.          Be sure to retrieve the returned handles immediately from the
  832.          REXX 'RC' variable after calling one of these.
  833.  
  834.      Transmit()
  835.          The transmit() function was erroneously limiting output
  836.          to the first 64 characters of any given string and discarding
  837.          the remainder.  This has been corrected.
  838.  
  839.          The transmit() function would behave unpredictably on strings
  840.          containing one or more modem delay characters if local echo
  841.          mode was not ON.  This has been corrected.
  842.  
  843.  
  844.  
  845.   -------------------------------------------------------------
  846.  
  847.                                          Notes for TE/2 Version 1.20
  848.                                                        June 15, 1992
  849.  
  850.                                                      Oberon Software
  851.                                                   518 Blue Earth St.
  852.                                               Mankato, MN 56001-2142
  853.  
  854.                                                  Voice: 507/388-7001
  855.                                                  BBS:   507/388-1154
  856.  
  857.  
  858.  =======================================================================
  859.  Changes which effect both the Registered and Shareware Versions of TE/2
  860.  =======================================================================
  861.  
  862.   * New INI File variables
  863.  
  864.      DirFile <filename>  -- Names the default dialing directory file
  865.                             which TE/2 will load at startup.
  866.  
  867.      FnkFile <filename>  -- Names the default function key definition
  868.                             file which TE/2 will load at startup.
  869.  
  870.      XexFile <filename>  -- Names the default external programs file
  871.                             which TE/2 will load at startup.
  872.  
  873.      VT100Prn <devname>  -- Names the "printer device" to be used in
  874.                             conjunction with the new printer support
  875.                             in the VT100 emulation (described elsewhere
  876.                             in this document)
  877.  
  878.      VT100Backspace      -- Set to True or False, default is False.  If
  879.                             "true", the VT100 emulation will interpret
  880.                             incoming backspace characters as "destructive"
  881.                             (That is, a backspace will be equivalent to
  882.                             the sequence backspace-space-backspace).
  883.  
  884.      SwapBS4Del          -- Set to True or False, default is False.  If
  885.                             "true", TE/2 will transmit a DEL character
  886.                             (ASCII 127) from the backspace key instead of
  887.                             the default backspace character (ASCII 8).
  888.                             Note that this effects ONLY the backspace key
  889.                             itself and not CONTROL+H.
  890.  
  891.      DialerSendInit      -- Set to True or False, default is False.  If
  892.                             "true" the TE/2 dialer will transmit the modem
  893.                             initialization string ("ModemInitStrg") to the
  894.                             modem at the beginning of each dialing session.
  895.  
  896.  
  897.   * New INI file keyword
  898.      INCLUDE <filename>  -- allows you to segregate portions of your
  899.                             INI file settings into separate files.
  900.                             This feature is used in the default INI
  901.                             file for the new modem definition setup
  902.                             described elsewhere in this document.
  903.  
  904.   * Online Colors Setup!
  905.      Atl-Y from within TE/2 will now execute TE2COLOR.EXE if possible.
  906.      TE2COLOR.EXE must be either
  907.           1) in the current directory,
  908.           2) in the same directory as TE2.EXE, or
  909.           3) somewhere on the PATH.
  910.      Your INI file must be located likewise (if you've changed directories
  911.      since startup, this may cause a problem).  Note that online color
  912.      setup WILL NOT WORK if you have your color attributes in a file which
  913.      has been "included" into your .INI file.  If this is the case, you
  914.      still can run TE2COLOR as a standalone, the command line syntax is
  915.      "TE2COLOR filename".
  916.  
  917.  
  918.   * Modem setup files
  919.      A file named MODEMS.ZIP is included with this release of TE/2.
  920.      It contains over 60 modem configuration files designed to be
  921.      "included" into your TE2.INI for various modem types.  To use
  922.      these files, refer to the file MODEMS.DOC which is contained
  923.      in MODEMS.ZIP.
  924.  
  925.  
  926.   * Alternate Keyboards
  927.      Alt-= brings up a menu of alternate keyboards for you to choose
  928.      from.  Support is provided for:
  929.  
  930.                OS2You Mode
  931.                Doorway Mode (Standard)
  932.                Doorway Mode (Enhanced)
  933.                "Pure" Binary Mode for function keys
  934.  
  935.      See TE2.DOC, the section on "Alternate Keyboards" for a description
  936.      of each of these and further information.
  937.  
  938.  
  939.   * PASSWORD Field in Dialing Directory entries
  940.      You can assign a string to be associated with each entry into
  941.      the dialing directory.  The "Toggle" function in the dialing
  942.      directory screen will allow you to view this setting.  In the
  943.      full featured version of TE/2, you may access this value via
  944.      the "PASSWORD()" function (described elsewhere in this document).
  945.  
  946.  
  947.   * "Access Codes" in the dialing directory
  948.      This was previously a "registered version only" feature, it
  949.      has now been included into the shareware release of TE/2.
  950.      This feature allows you to enter up to ten strings for each
  951.      dialing directory that may be substituted as "macros" into
  952.      the phone numbers of directory entries.
  953.  
  954.  
  955.   * New "Filename Mangling" logic on download filename collisions
  956.      The old filename resolution logic, involving dollar sign
  957.      characters, has been replaced.  TE/2 will resolve filename
  958.      collisions differently depending on whether the target disk
  959.      is formatted with HPFS or not:
  960.  
  961.           On HPFS, ";xx", where "xx" is a number starting at 1,
  962.           will be appended to the existing file's name.
  963.  
  964.           On FAT, the last two characters of the existing file's
  965.           name will be replaced with a two digit number beginning
  966.           at 01.
  967.  
  968.  
  969.   * COMMPAK2FLAGS Environment Variable
  970.      This environment variable has been instituted as a means of
  971.      passing certain information into Commpak2.Dll to alter its
  972.      behavior.  At this time, there is one valid setting for
  973.      COMMPAK2FLAGS:
  974.  
  975.         "set COMMPAK2FLAGS=X:Y;"  or "set COMMPAK2FLAGS=X:N;"
  976.  
  977.      These settings will turn the 16550 Extended Hardware Buffering
  978.      check ON and OFF respectively.  The default is on.  Although the
  979.      com device driver should only return an error in response to a
  980.      check for the 16550 chip, on some machines it causes a fatal
  981.      trap!  If you experience this problem just as a file transfer
  982.      begins, you should set COMMPAK2FLAGS=X:N; in your CONFIG.SYS.
  983.  
  984.  
  985.   * New INI Setting: ExtendedFIFO True/False
  986.      TE/2 will not alter the BUFFERS setting for the com port upon
  987.      startup unless this setting appears in the INI file  (that is,
  988.      TE/2 will use whatever is default or has been set via the OS/2
  989.      MODE command).  If ExtendedFIFO is set to "TRUE", TE/2 will
  990.      attempt to set AUTO buffering, if it is set to "FALSE" it will
  991.      attempt turn off the 16550 FIFO buffer.  Do not use this setting
  992.      unless you deem it absolutely necessary.  Note also that the
  993.      file transfer protocols will, by default, attempt to set AUTO
  994.      buffering during file transfer.  If this causes a problem on
  995.      your machine, you can turn this off via the COMMPAK2FLAGS
  996.      environment variable described elsewhere in this document.
  997.  
  998.  
  999.   * VT100 Printing
  1000.      If the new INI file setting "VT100Prn" is set to a valid
  1001.      device or file name before entering VT100 mode, certain VT220
  1002.      printing features will be enabled.  This will allow the host
  1003.      program to direct the VT100 to perform various print functions:
  1004.  
  1005.           Auto Print Mode ON and OFF  (^[[?5i and ^[[?4i)
  1006.                All following display lines print when you move the
  1007.                cursor off the line using a LF, FF, VT, or auto wrap.
  1008.                The printed line ends with a CR and the character which
  1009.                moved the cursor off the previous line.  Auto line
  1010.                wrap line "ends" with a LF.
  1011.  
  1012.           Printer Controller Mode ON and OFF (^[[5i and ^[[4i)
  1013.                The terminal sends received characters to the printer
  1014.                without displaying them on the screen.  All characters
  1015.                and character sequences, except NULL, XON, XOFF, ^[[5i,
  1016.                and ^[[4i, are sent to the printer.  Printer controller
  1017.                mode has a higher priority than Auto print mode.  It can
  1018.                be selected during auto print mode.
  1019.  
  1020.           Print Screen (^[[i or ^[[0i)
  1021.                Print the screen or the current scrolling region (depending
  1022.                on the DECPEX setting).  Each line ends with a CR+LF
  1023.                pair and the operation is completed with a FF if DECPFF
  1024.                mode is selected.
  1025.  
  1026.           DSR response to ^[?15n
  1027.                The VT100 will respond to the hosts query for terminal
  1028.                printer information with ^[[?10n if a device has been
  1029.                named via VT100Prn (implying the printer is "ready") or
  1030.                with ^[[?13n if no device is named (printer NOT "ready").
  1031.  
  1032.           Print Mode Selection Supported
  1033.                ^[[?18h -- DECPFF. Print FF after print screen.
  1034.                ^[[?18l -- DECPFF. Don't print FF after print screen.
  1035.                ^[[?19h -- DECPEX. ^[[i prints full screen.
  1036.                ^[[?19l -- DECPEX. ^[[i prints active scroll region.
  1037.  
  1038.           Print cursor line NOT supported
  1039.                ^[[1i, "Print current cursor line" is NOT supported by the
  1040.                VT100 emulation as it would not be possible to produce
  1041.                reasonable printer output from this function given the
  1042.                intervention of the OS/2 spooler.
  1043.  
  1044.  
  1045.   * Character translation of "[" characters filtered
  1046.      For certain European character setups, the "[" needs to be
  1047.      translated but it still needs to be accessed "as is" when it
  1048.      appears in an ANSI or VT100 control sequence!  When applying
  1049.      character translation from the XLat table, TE/2 now checks for
  1050.      the special case of '[' immediately following an ESCape character
  1051.      and does not translate it in this situation.  Any arbitrary
  1052.      number of control characters may appear between the ESC and the
  1053.      '[' and it will still be considered "immediately after".
  1054.  
  1055.  
  1056.   * High-bit characters allowed in input fields.
  1057.      European users can now enter their names properly in the dialing
  1058.      directory and other input fields!
  1059.  
  1060.  
  1061.   * TE/2 now no longer reports negative numbers for baud rates of
  1062.      38400 or greater.
  1063.  
  1064.   * The default baud rate for a new entry into the TE/2 dialing
  1065.      directory is now set to whatever was specified in your "Baud"
  1066.      statement in TE2.INI.
  1067.  
  1068.  
  1069.   * TRAP 0008 problem for TE/2 with shared modem over LAN addressed.
  1070.      If you have experienced this problem, place the line:
  1071.  
  1072.                     NoOvIO    TRUE
  1073.  
  1074.      anywhere in your TE2.INI.  This should correct the problem at
  1075.      the expense of a small amount of throughput.  If the problem
  1076.      persists, please contact Oberon Software.
  1077.  
  1078.  
  1079.   * Cursor problem fixed in input fields when screen in 25 line mode.
  1080.      Previously the cursor would not display correctly in input fields
  1081.      unless the screen was in 43 or 50 line mode.
  1082.  
  1083.   * Long "CONNECT" strings no longer overwrite the borders of the dialer
  1084.      dialog box.
  1085.  
  1086.     ------------------------------------------------------------
  1087.  
  1088.        ========================================================
  1089.        Changes which effect only the Registered Version of TE/2
  1090.        ========================================================
  1091.  
  1092.   * REXX/2 Interface for script writers!
  1093.      You now have the option of writing your TE/2 scripts in either
  1094.      the TE/2 "Original Syntax" Script Language or in the REXX/2
  1095.      Procedure language!  See the notes in SCRIPT.DOC regarding
  1096.      REXX scripts for further information.
  1097.  
  1098.  
  1099.   * New Script Language Functions
  1100.      NOTE: In each of the following functions which use "tag" as an
  1101.      argument, the string "tag" may be either a value to search the
  1102.      directory file's "Tag" field for or it may be "" in which case
  1103.      it is interpreted as "the most recently dialed entry".
  1104.  
  1105.      Password(tag)                 Returns the "Password" field for the
  1106.                                    entry or "" on error.
  1107.  
  1108.      DirName(tag)                  Returns the "Name" field for the entry
  1109.                                    or "" on error.
  1110.  
  1111.      DirPhone(tag)                 Returns the "Number" field for the entry
  1112.                                    or "" on error.
  1113.  
  1114.      DirScript(tag)                Returns the "Script" field for the entry
  1115.                                    or "" on error.
  1116.  
  1117.      DirTag(tag)                   Returns the "Tag" field for the entry
  1118.                                    or "" on error.
  1119.  
  1120.      SaveDirFile(filename)         Saves the current directory as filename,
  1121.                                    if filename is "" saves the current
  1122.                                    directory without changing the name.
  1123.                                    Returns 0 on success, non zero otherwise.
  1124.  
  1125.      SetTag(tag, tag2)             Sets the "Tag" field for the entry,
  1126.                                    returns 1 on success, 0 on failure.
  1127.  
  1128.      SetName(tag, name)            Sets the "Name" field for the entry,
  1129.                                    returns 1 on success, 0 on failure.
  1130.  
  1131.      SetPassword(tag, password)    Sets the "Password" field for the entry,
  1132.                                    returns 1 on success, 0 on failure.
  1133.  
  1134.      SetPhone(tag, phone)          Sets the "Number" field for the entry,
  1135.                                    returns 1 on success, 0 on failure.
  1136.  
  1137.      SetScript(tag, script)        Sets the "Script" field for the entry,
  1138.                                    returns 1 on success, 0 on failure.
  1139.  
  1140.      StrEval(strg)                 Returns the value of its argument.
  1141.                                    This function appears as an aid to the
  1142.                                    REXX language script writer.
  1143.  
  1144.      SetXlatTable(fname, ioflag)   Reads a new character translation table
  1145.                                    from the indicated file.  If ioflag
  1146.                                    is non-zero, it will initialize the
  1147.                                    OUTPUT translation, if it is zero it
  1148.                                    will initialize INPUT translation.  If
  1149.                                    fname is "" the corresponding
  1150.                                    character translation is turned OFF.
  1151.  
  1152.      SetVT100BkSp(flag)            Sets the VT100 backspace mode (see INI
  1153.                                    variable VT100Backspace) to ON or OFF
  1154.                                    depending on the Boolean "flag".  Returns
  1155.                                    the previous state of the VT100 backspace
  1156.                                    mode.
  1157.  
  1158.  
  1159.  
  1160.   * File Transfer Progress Display revised and cleaned up for CIS B+
  1161.      The somewhat confusing "Bytes Transferred" and "Time Remaining"
  1162.      statistics for CIS B+ transfers have been reworked and cleaned up.
  1163.      TE/2 will now "ring the bell" after a CIS B+ file transfer if
  1164.      you have alarms enabled also!
  1165.  
  1166.